#include<stdio.h>

int a[5010];

int min(int x, int y) {
    return x < y ? x : y;
}

int main() {
    int n, x, y, i, j, ans=5000; // 答案不可能超过5000 所以先设成5000
    scanf("%d%d%d", &n, &x, &y);
    for(i=1;i<=n;i++) scanf("%d", &a[i]);
    for(i=0;i<=5000;i++) { // 枚举旋风斩打几次，最多打 5000 次必然全部死亡
        int tmp = 0; // 记录还需几次火球术
        for(j=1;j<=n;j++) {
            int health = a[j] - i * x; // 剩余生命
            if(health > 0) { // 没死时需要用火球术补上
                tmp += (health - 1) / y + 1; 
                // 举个例子，当生命值为 1~y 时需要再补一个火球术，health-=1后变为 0~y-1，然后再除以 y 取整，得到 0，再加 1 得到 1
                // 生命值为其他正整数时这个规律也适用
            }
        }
        ans = min(ans, i + tmp); // i + tmp 是在打 i 个旋风斩时需要的施法数量
    }
    printf("%d", ans);
}